home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 5_2007-2008.ISO / data / Zips / a_14_Handy2056213262007.psc / Handy Modules / modBatch.bas next >
BASIC Source File  |  2007-03-26  |  3KB  |  87 lines

  1. Attribute VB_Name = "modBATCH"
  2. Const PrefPath = "C:\"
  3. Dim Batchpath As String
  4. Dim Batchfile As String
  5. Dim Batchstr As String
  6.  
  7. Public Property Get batString() As String
  8.     batString = Batchstr
  9. End Property
  10.  
  11. Public Property Let batString(newval As String)
  12.     Batchstr = newval
  13. End Property
  14.  
  15. Public Property Get batPath() As String
  16.     batPath = Batchpath
  17. End Property
  18.  
  19. Public Property Let batPath(cnewval As String)
  20.     Batchpath = cnewval
  21. End Property
  22.  
  23. Public Sub batPrint(pval As String)
  24.     Batchstr = Batchstr & pval & vbCrLf
  25. End Sub
  26.  
  27. Public Sub batClear()
  28.     Batchstr = ""
  29. End Sub
  30.  
  31. Public Sub batCls()
  32.     Batchstr = ""
  33. End Sub
  34.  
  35. Public Sub batKill()
  36.     On Error Resume Next
  37.     Kill Batchpath & Batchfile & ".bat"
  38.     Kill Batchpath & Batchfile & ".ret"
  39. End Sub
  40.  
  41. Public Function batRun(visible As Boolean, waitforretval As Boolean, autokill As Boolean) As String
  42.     On Error Resume Next
  43.     Dim ff As Long
  44.     Batchfile = "batchfile" & XRndNum(0, 5000000)
  45.     If Batchpath = "" Then Batchpath = PrefPath
  46.     If waitforretval Then Batchstr = Batchstr & vbCrLf & "cd " & Batchpath & vbCrLf & "ECHO ;*-HeRE ENDS0983572-*;>>" & Batchfile & ".ret"
  47.     Batchstr = Replace$(Batchstr, "%FILE%", Batchfile & ".ret")
  48.     Batchstr = "@ECHO OFF" & vbCrLf & "cd " & Batchpath & vbCrLf & "@ECHO ON" & vbCrLf & Batchstr
  49.     ff = FreeFile
  50.     Kill Batchpath & Batchfile & ".bat"
  51.     Open Batchpath & Batchfile & ".bat" For Binary As ff
  52.     Put ff, , Batchstr
  53.     Close ff
  54.     If Not visible Then
  55.         Shell Batchpath & Batchfile & ".bat", vbHide
  56.     Else
  57.         Shell Batchpath & Batchfile & ".bat", vbNormalFocus
  58.     End If
  59.     If waitforretval Then
  60.         Dim dat As String
  61.         Do
  62.             DoEvents
  63.             ff = FreeFile
  64.             Open Batchpath & Batchfile & ".ret" For Binary As ff
  65.                 dat = Space$(LOF(ff))
  66.                 Get ff, , dat
  67.             Close ff
  68.             pt = Timer
  69.             Do
  70.                 DoEvents
  71.             Loop Until Timer >= pt + 0.5
  72.         Loop Until Right$(dat, Len(";*-HeRE ENDS0983572-*;") + 2) = ";*-HeRE ENDS0983572-*;" & vbCrLf
  73.         If autokill Then Kill Batchpath & Batchfile & ".bat"
  74.         If autokill Then Kill Batchpath & Batchfile & ".ret"
  75.         batRun = Mid$(dat, 1, Len(dat) - Len(";*-HeRE ENDS0983572-*;") - 2)
  76.     End If
  77. End Function
  78.  
  79.  
  80. Private Function XRndNum(Lowest, Highest)
  81. Lowest = Lowest - 1
  82. Highest = Highest + 1
  83. Randomize Timer
  84. XRndNum = Int(Rnd * (Highest - Lowest - 1)) + Lowest + 1
  85. End Function
  86.  
  87.